package com.x9space.framework.elastic.annotation;



import com.x9space.framework.elastic.enums.BoolQueryType;

import java.lang.annotation.*;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@QueryBuilderMark
public @interface RangeMatch {

    /**
     * 四种， must ,should , must_not, should
     * @return
     */
    BoolQueryType queryType() default BoolQueryType.FILTER;


    String field() default "";

    /**
     * gt 大于
     * @return
     */
    boolean gt() default false;

    /**
     * lt 小于
     * @return
     */
    boolean lt() default false;


    /**
     * gte 大于等于
     * @return
     */
    boolean gte() default  false;

    /**
     * gte 小于等于
     * @return
     */
    boolean lte() default  false;

    /**
     * 评分
     * @return
     */
    float boost() default -1;


    /**
     * 格式化，日期范围查询有效
     * @return
     */
    String format() default ""; // "dd/MM/yyyy||yyyy"

    /**
     * 时区，日期范围查询有效
     * @return
     */
    String timeZone() default ""; //"time_zone"

}
